package org.shiwen.week8;

import org.shiwen.week5.Student;

public class FinalConstant {
    int a;
    //当你在类中定义的变量被final修饰时，这个变量就变成了常量。
    //被final修饰的属性，必须要有初始值，如果直接写final int b，会报错
//    final int b;
    final int C = 10;
}


class Ttest{
    public static void main(String[] args) {
//        final int a = 10;
//        System.out.println(a);
        //常量不能二次修改，否则会报错
//        a = 20;

//        FinalConstant finalConstant = new FinalConstant();
//        //普通的属性会有默认的初始值，因为final修饰的属性，只能赋值一次，如果给了默认值很不合理，所以必须初始化
//        System.out.println(finalConstant.a);
//        System.out.println(finalConstant.C);
//
//        //如果一个引用数据类型被final修饰，那么不能修改的是内存的地址值，里面的元素的值，是可以修改的
        final int array[] = new int[2];
        int array2[] = new int[3];
//        array[1] = 10;
//        System.out.println(array[1]);
//        System.out.println(array);
//        array[1] = 20;
//        System.out.println(array[1]);
        System.out.println(array);
        System.out.println(array2);

        //这里让新建一个数组的地址值，并且将其赋值给array，会报错，因为array被final修饰了
//        array = new int[3];
//        array2没有被final修饰，所以可以修改
        array2 = new int[4];
        System.out.println(array2);

    }
}


